{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "pycharm": {
     "name": "#%% md\n"
    }
   },
   "source": [
    "# 9.MockLogin 模拟登录——以爬取gitHub为例\n",
    "\n",
    "很多情况下，页面的某些信息需要登录才可以查看\n",
    "\n",
    "对于爬虫来说，需要爬取的信息如果需要登\n",
    "才可以看到的话，那么我们就需要做一些模拟登录的事情\n",
    "\n",
    "在前面我们了解了会话和 Cookies 的用法。简单来说，这实际上是在客户端生成了Cookies，而 Cookies 里面保存了SessionID。\n",
    "登录之后的后续请求都会携带生成后\n",
    "的 Cookies 发送给服务器，后者就会根据 Cookies 判断出对应的 SessionID 、\n",
    "进而找到会话。如果会话是有效的那么服务器就判断用户当前已经登录了.\n",
    "返回请求的页面信息.这样我们就可以到登录之后的页面。\n",
    "\n",
    "这里的核心就是获取登录之后的 Cookies 而要获取 Cookies ，我们可以手动在浏览器里输入用户密\n",
    "码，然后再把 Cookies 复制下来，但是这样做明显会增加人工工作量。\n",
    "\n",
    "因此我们将介绍模拟登录的相关方法以及如何维护一个 Cookies池\n",
    "\n",
    "## 9.1 项目介绍与目标\n",
    "\n",
    "如果希望爬取 GitHub 所关注人的最近动态，我们就需要模拟登录GitHub\n",
    "\n",
    "### 1)分析登录过程\n",
    "\n",
    "首先要分析登录的过程，需要探究后台的登录请求是怎样发送的，登录之后又有怎样的处理过程\n",
    "\n",
    "如果已经登录 GitHub，先退出同时清除Cookies\n",
    "\n",
    "首先，打开GitHub 登录页面，链接为\n",
    "[https://github.com/login](https://github.com/login)，\n",
    "输入GitHub的用户名和密码，打开\n",
    "开发者工具将 Preserve Log选上，这表示显示持续日志，"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "PyCharm (PycharmWorkspace)",
   "language": "python",
   "name": "pycharm-7b63a738"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
